/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.beautycenter.DAO;

import br.com.beautycenter.bean.RecebimentoExtraCaixa;
import br.com.beautycenter.hibernateUtil.DaoBase;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.Query;

/**
 *
 * @author Magelinha
 */
public class PersisteRecebimentoExtra extends DaoBase<RecebimentoExtraCaixa> { 
    public List<RecebimentoExtraCaixa> retornarRecebimentosExtras(){
        try {
            return findAll();
        } catch (Exception ex) {
            return new ArrayList<RecebimentoExtraCaixa>();
        }
    }
    
    public List<RecebimentoExtraCaixa> retornarRecebimentosPelaData(Date date){
        Query query = getEntityManager().createQuery("FROM RecebimentoExtraCaixa r WHERE r.dtCadastro =:data");
        query.setParameter("data", date);
        
        try{
            return query.getResultList();
        }catch(Exception ex){
            return new ArrayList<RecebimentoExtraCaixa>();
        }
    }
    
    public Double retornarSomatorioRecebimentoExtraPorData(Date data){
        Query query = getEntityManager().createQuery("SELECT SUM(r.valorRecebimento) FROM RecebimentoExtraCaixa r WHERE "
                + "r.dtCadastro=:data");
        
        query.setParameter("data", data);
        
        try{
            return (Double)query.getSingleResult();
        }catch(Exception ex){
            ex.printStackTrace(); //exibe o erro que deu
            return 0.;
        }
    }
    
    public RecebimentoExtraCaixa retornarRecebimentoExtraPeloID(RecebimentoExtraCaixa recebimentoExtra){
        return getEntityManager().find(RecebimentoExtraCaixa.class, recebimentoExtra.getIdRecebimentoExtraCaixa());
    }
    
    public void salvar(RecebimentoExtraCaixa recebimentoExtra){
        save(recebimentoExtra);
    }
    public void deletar(RecebimentoExtraCaixa recebimentoExtraCaixa){
        try{
            delete(recebimentoExtraCaixa);
        }catch (Exception ex){
            ex.printStackTrace();
        }
    }
    
    public void atualizar(RecebimentoExtraCaixa recebimentoExtra){
        update(recebimentoExtra);
    }
}



